Data-driven dialogue enabled self-help systems

ABSTRACT

A method for configuring an automated self-help system based on prior interactions between a plurality of customers and a plurality of agents of a contact center includes: recognizing, by a processor, speech in the prior interactions between customers and agents to generate recognized text, the recognized text including a plurality of phrases, the phrases being classified into a plurality of clusters; extracting, by the processor, a plurality of sequences of clusters, each of the sequences of clusters corresponding to the phrases of one of the prior interactions; filtering, by the processor, the sequences of clusters based on a criterion; mining, by the processor, a preliminary dialog tree from the sequences of clusters; invoking configuration of the automated self-help system based on the preliminary dialog tree; and outputting a dialog tree for configuring the automated self-help system.

CROSS-REFERENCE TO RELATED APPLICATION

This application is related to “Dialogue Flow Optimization andPersonalization,” Ser. No. 14/919,675, filed on even date herewith, theentire disclosure of which is incorporated herein by reference.

FIELD

Embodiments of the present invention relate to the field of software foroperating contact centers, in particular, software and services forassisting people communicating with contact centers and methods for theautomated and assisted configuration of such software and services.

BACKGROUND

Contact centers staffed by agents generally serve as an interfacebetween an organization such as a company and outside entities such ascustomers. For example, human sales agents at contact centers may assistcustomers in making purchasing decisions and may receive purchase ordersfrom those customers. Similarly, human support agents at contact centersmay assist customers in solving problems with products or servicesprovided by the organization. Interactions between contact center agentsand outside entities (customers) may be conducted by speech voice (e.g.,telephone calls), video (e.g., video conferencing), text (e.g., emailsand text chat), or through other media.

At some contact centers, self-help systems may be configured to handlerequests and questions from outside entities, without the involvement ofa human agent at the contact center, thereby potentially reducing costsfor the contact center. For example, self-help systems may suggestsolutions to commonly experienced problems. Examples of self-helpsystems include the Nuance® Nina® and Genesys® Voice Platform (GVP)systems. Self-help systems may be implemented as interactive voiceresponse (IVR) or interactive media response (IMR) systems having speechinput capabilities (e.g., in addition to or instead of responding todual-tone multi-frequency signals from keypresses).

Generally, self-help systems are customized on a per-organization basisin order to provide information and services that are relevant to theorganization and the outside entities that the organization interactswith. For example, a wireless telephone carrier may configure aself-help system to automatically provide instructions for solvingproblems with cellular connectivity or email access, provide informationregarding the customer's current bill, or accept payment information.

SUMMARY

Aspects of embodiments of the present invention are directed to systemsand methods for assisting in the configuration and customization of aself-help system for a contact center.

According to one embodiment of the present invention, a method forconfiguring an automated self-help system based on prior interactionsbetween a plurality of customers and a plurality of agents of a contactcenter includes: recognizing, by a processor, speech in the priorinteractions between customers and agents to generate recognized text,the recognized text including a plurality of phrases, the phrases beingclassified into a plurality of clusters; extracting, by the processor, aplurality of sequences of clusters, each of the sequences of clusterscorresponding to the phrases of one of the prior interactions;filtering, by the processor, the sequences of clusters based on acriterion; mining, by the processor, a preliminary dialogue tree fromthe sequences of clusters; invoking configuration of the automatedself-help system based on the preliminary dialogue tree; and outputtinga dialogue tree for configuring the automated self-help system.

The mining the preliminary dialogue tree from the sequences of clustersand a current prefix may include: generating sequences of clusteridentifiers; identifying frequent clusters of the clusters from thesequences of cluster identifiers; and matching prefixes of the sequencesto generate the preliminary dialogue tree.

The generating the sequences of cluster identifiers may include removingconsecutive repetitions of clusters in the sequences of clusters.

Each of the clusters may be associated with one of a plurality of sides,the plurality of sides including a customer side and an agent side,wherein the identifying the frequent clusters of the clusters from thesequence of cluster identifiers may include identifying clustersassociated with a side different from the side of the current prefix andhaving support greater than a threshold level.

The matching prefixes of the sequences may include, based on the currentprefix, a projected database for the current prefix, and an input tree,for each cluster in the frequent clusters: concatenating the currentprefix with the cluster to generate an appended prefix; building aprojected database for the appended prefix; creating a subtree byrecursively repeating the process using the appended prefix, theprojected database for the appended prefix, and the input tree; andextending the input tree by connecting the subtree as a child to acurrent parent node corresponding to the current prefix.

The matching the prefixes may begin by: setting the current prefix tothe empty string; setting the projected database for the current prefixto be the sequences of cluster identifiers; and setting the input treeto an empty tree.

The method may further include receiving a selection of a root node froma user, wherein the matching the prefixes may begin by: setting thecurrent prefix to a string corresponding to the root node; setting theprojected database for the current prefix to be the sequences of clusteridentifiers; and setting the input tree to the root node.

The invoking configuration of the automated self-help system mayinclude: displaying, on a user interface, the preliminary dialogue treein a user interface; receiving user input identifying an agent responsefor a node of the dialogue tree; and receiving user input identifying agrammar matching a customer phrase for an edge of the dialogue tree.

The method may further include displaying a plurality of suggested agentresponses, the plurality of suggested agent responses being generatedby: detecting, by the processor, a plurality of topics in the priorinteractions; receiving, by the processor, from the user interface, aninput phrase; identifying, by the processor, a cluster matching theinput phrase; and displaying, by the processor, on the user interface, aplurality of phrases corresponding to the cluster matching the inputphrase.

The method may further include displaying a plurality of suggestedcustomer grammars, the plurality of suggested customer grammars beinggenerated by: detecting, by the processor, a plurality of topics in theprior interactions; receiving, by the processor, from the userinterface, an input phrase; identifying, by the processor, a clustermatching the input phrase; and displaying, by the processor, on the userinterface, a grammar corresponding to the phrases of the clustermatching the input phrase.

The output dialogue tree may include a plurality of agent nodes and aplurality of customer edges connecting the agent nodes.

At least one of the agent nodes may include a merged plurality of agentclusters.

According to one embodiment of the present invention, a system includes:a processor; and a memory, wherein the memory stores instructions that,when executed by the processor, cause the processor to: recognize speechin a plurality of prior interactions between a plurality of customersand a plurality of agents of a contact center to generate recognizedtext, the recognized text including a plurality of phrases, the phrasesbeing classified into a plurality of clusters; extract a plurality ofsequences of clusters, each of the sequences of clusters correspondingto the phrases of one of the prior interactions; filter the sequences ofclusters based on a criterion; mine a preliminary dialogue tree from thesequences of clusters; invoke configuration of an automated self-helpsystem based on the preliminary dialogue tree; and outputting a dialoguetree for configuring the automated self-help system.

The instructions that cause the processor to mine the preliminarydialogue tree from the sequences of clusters and a current prefix mayinclude instructions that, when executed by the processor, cause theprocessor to: generate sequences of cluster identifiers; identifyfrequent clusters of the clusters from the sequences of clusteridentifiers; and match prefixes of the sequences to generate thepreliminary dialogue tree.

The instructions that cause the processor to generate the sequences ofcluster identifiers may include instructions that, when executed by theprocessor, cause the processor to remove consecutive repetitions ofclusters in the sequences of clusters.

Each of the clusters may be associated with one of a plurality of sides,the plurality of sides including a customer side and an agent side,wherein the instructions that cause the processor to identify thefrequent clusters of the clusters from the sequence of clusteridentifiers may include instructions that, when executed by theprocessor, cause the processor to identify clusters associated with aside different from the side of the current prefix and having supportgreater than a threshold level.

The instructions that cause the processor to match prefixes of thesequences may include instructions that, based on the current prefix, aprojected database for the current prefix, and an input tree, for eachcluster in the frequent clusters, cause the processor to: concatenatethe current prefix with the cluster to generate an appended prefix;build a projected database for the appended prefix; create a subtree byrecursively repeating the process using the appended prefix, theprojected database for the appended prefix, and the input tree; andextend the input tree by connecting the subtree as a child to a currentparent node corresponding to the current prefix.

The instructions that cause the processor to match prefixes of thesequences may include instructions that, when executed by the processor,cause the processor to begin matching the prefixes by: setting thecurrent prefix to the empty string; setting the projected database forthe current prefix to be the sequences of cluster identifiers; andsetting the input tree to an empty tree.

The memory may further store instructions that cause the processor toreceive a selection of a root node from a user, wherein the instructionsthat cause the processor to match prefixes of the sequences includesinstructions that, when executed by the processor, cause the processorto begin matching the prefixes by: setting the current prefix to astring corresponding to the root node; setting the projected databasefor the current prefix to be the sequences of cluster identifiers; andsetting the input tree to the root node.

The instructions that cause the processor to invoke configuration of theautomated self-help system may include instructions that, when executedby the processor, cause the processor to: display, on a user interface,the preliminary dialogue tree in a user interface; receive user inputidentifying an agent response for a node of the dialogue tree; andreceive user input identifying a grammar matching a customer phrase foran edge of the dialogue tree.

The memory may further store instructions that, when executed by theprocessor, cause the processor to display a plurality of suggested agentresponses, the plurality of suggested agent responses being generatedby: detecting a plurality of topics in the prior interactions; receivingfrom the user interface, an input phrase; identifying a cluster matchingthe input phrase; and displaying on the user interface, a plurality ofphrases corresponding to the cluster matching the input phrase.

The memory may further store instructions that, when executed by theprocessor, cause the processor to display a plurality of suggestedcustomer grammars, the plurality of suggested customer grammars beinggenerated by: detecting, by the processor, a plurality of topics in theprior interactions; receiving, by the processor, from the userinterface, an input phrase; identifying, by the processor, a clustermatching the input phrase; and displaying, by the processor, on the userinterface, a grammar corresponding to the phrases of the clustermatching the input phrase.

The output dialogue tree may include a plurality of agent nodes and aplurality of customer edges connecting the agent nodes.

At least one of the agent nodes may include a merged plurality of agentclusters.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, together with the specification, illustrateexemplary embodiments of the present invention, and, together with thedescription, serve to explain the principles of the present invention.

FIG. 1 is a schematic block diagram of a system for supporting a contactcenter in providing contact center services according to one exemplaryembodiment of the invention.

FIG. 2 is an abstract visualization of an exemplary dialogue graph ordialogue tree.

FIG. 3 is a flowchart illustrating a method for extracting interactiondata from recorded interactions according to one embodiment of thepresent invention.

FIG. 4A is a schematic diagram illustrating an interaction between anagent and a customer, as abstracted into a sequence of clusters (ortopics), according to one embodiment of the present invention.

FIG. 4B is a schematic illustration of a sequence of clusters (ortopics) generated from the separately recognized clusters (or topics),according to one embodiment, where the sequence includes an indicationof the speaker of the fragment associated with the clusters.

FIG. 5 is a flowchart illustrating a method for mining the prunedcollection of sequences of clusters to generate a dialogue treeaccording to one embodiment of the present invention.

FIG. 6 is an example of an automatically generated preliminary or rawdialogue tree T according to one embodiment of the present invention.

FIG. 7 illustrates a resulting dialogue tree generated based on the treeshown in FIG. 6 and based on user input according to one embodiment ofthe present invention.

FIG. 8 is a flowchart illustrating a method for performing automaticdialogue expansion according to one embodiment of the present invention.

FIG. 9 is a diagram illustrating a process according to one embodimentof the present invention for a system designer to add an agent node to adialogue tree.

FIG. 10 is a screenshot of a user interface providing suggestedalternative agent phrases according to one embodiment of the presentinvention.

FIG. 11 is a screenshot of a user interface providing suggested grammarsbased on the provided input according to one embodiment of the presentinvention.

FIG. 12A is a schematic diagram of a process for clustering, filtering,and mining interactions to generate a dialogue tree according to oneembodiment of the present invention.

FIG. 12B is a flowchart illustrating a method 1200 for rating theperformance of various sequences.

FIG. 12C is a flowchart of a method for computing similarity between twobags of clusters (ν₁, ν₂) according to one embodiment of the presentinvention.

FIG. 13A is a block diagram of a computing device according to anembodiment of the present invention.

FIG. 13B is a block diagram of a computing device according to anembodiment of the present invention.

FIG. 13C is a block diagram of a computing device according to anembodiment of the present invention.

FIG. 13D is a block diagram of a computing device according to anembodiment of the present invention.

FIG. 13E is a block diagram of a network environment including severalcomputing devices according to an embodiment of the present invention.

DETAILED DESCRIPTION

In the following detailed description, only certain exemplaryembodiments of the present invention are shown and described, by way ofillustration. As those skilled in the art would recognize, the inventionmay be embodied in many different forms and should not be construed asbeing limited to the embodiments set forth herein. Like referencenumerals designate like elements throughout the specification.

Speech enabled self-help systems may provide benefits in terms of areduced need for human agents to serve the needs of outside entitiesinteracting with a contact center. For the sake of convenience, outsideentities interacting with the contact center will be referred to hereinas “customers,” and may include situations where the outside entitiesare not engaged in commercial or business interactions with the contactcenter. These self-help systems are generally customized to theparticular needs of the organizations supported by the self-helpsystems. Tools for performing this configuration enable the definitionof Voice-XML (extensible markup language) and associated XML formgrammar (GRXML) for configuring the self-service systems. However,setting, initializing, optimizing, and updating such systems istypically a manual process that is time consuming, expensive, andinefficient. In addition, a designer may fail to appreciate the varietyof ways that customers may think about the problem to be solved as theyapproach the self-help system, such as the most comfortable order inwhich to provide information (or providing the flexibility for acustomer to provide information in an order different from that designedby the system designer).

Systems and methods for assisting in the development of Voice-XML andGRXML based grammars by learning from customer-agent calls can be found,for example, in U.S. patent application Ser. No. 14/799,369 “DATA DRIVENSPEECH ENABLED SELF-HELP SYSTEMS AND METHODS OF OPERATING THEREOF,” theentire disclosure of which is incorporated herein by reference. Theselearned grammars may be used as building blocks by self-help systemconfiguration tools in order to assist a user (e.g., a human systemadministrator or system designer or application designer) in configuringthe self-help systems. These systems may also automatically performsemantic expansion of phrases submitted by an administrator fordetection by the self-help system, thereby allowing for faster and morethorough configuration of a self-help system.

In addition to customizing the Voice-XML and GRXML based grammarsdetected by the self-help system, a system administrator may also needto design the order in which dialogue options are presented to customersinteracting with the self-help system. For example, a self-help systemfor booking a flight may first ask for a departure city, then adestination city, followed by a travel date. The various questions andanswers may be modeled as a directed graph (e.g., a tree), where variousnodes of the graph correspond to various states of the self-help systemand/or grammars detected by the self-help system. In conventionalsystems, the paths through the self-help system and the order in whichthe dialogue options are presented are manually designed by the systemadministrator based on his or her knowledge of the requirements of thesystem.

Embodiments of the present invention are directed to systems and methodsfor assisting a system administrator in designing a dialogue tree. Thisassistance may be generated by automatically analyzing the previousinteractions (e.g., recorded conversations) between customers and humanagents and the results of those interactions, thereby solving theproblem of designing an automated self-help system that matches actualcustomer behavior.

Contact Center Overview

FIG. 1 is a schematic block diagram of a system for supporting a contactcenter in providing contact center services according to one exemplaryembodiment of the invention. For the purposes of the discussion herein,interactions between customers using end user devices 10 and agents at acontact center using agent devices 38 may be recorded by call recordingmodule 40 and stored in call recording storage 42. The recorded callsmay be processed by speech recognition module 44 to generate recognizedtext which is stored in recognized text storage 46. In some embodimentsof the present invention, an automated self-help system according toembodiments of the present invention is provided by automated self-helpconfiguration module 45, which includes a cluster extraction module 45a, a user interface module 45 b, a sequence pruning module 45 c, a treemining module 45 d, and a dialogue expansion module 45 e, and which willbe described in more detail below.

The contact center may be an in-house facility to a business orcorporation for serving the enterprise in performing the functions ofsales and service relative to the products and services availablethrough the enterprise. In another aspect, the contact center may be athird-party service provider. The contact center may be deployed inequipment dedicated to the enterprise or third-party service provider,and/or deployed in a remote computing environment such as, for example,a private or public cloud environment with infrastructure for supportingmultiple contact centers for multiple enterprises. The variouscomponents of the contact center system may also be distributed acrossvarious geographic locations and computing environments and notnecessarily contained in a single location, computing environment, oreven computing device.

According to one exemplary embodiment, the contact center system managesresources (e.g. personnel, computers, and telecommunication equipment)to enable delivery of services via telephone or other communicationmechanisms. Such services may vary depending on the type of contactcenter, and may range from customer service to help desk, emergencyresponse, telemarketing, order taking, and the like.

Customers, potential customers, or other end users (collectivelyreferred to as customers) desiring to receive services from the contactcenter may initiate inbound telephony calls to the contact center viatheir end user devices 10 a-10 c (collectively referenced as 10). Eachof the end user devices 10 may be a communication device conventional inthe art, such as, for example, a telephone, wireless phone, smart phone,personal computer, electronic tablet, and/or the like. Users operatingthe end user devices 10 may initiate, manage, and respond to telephonecalls, emails, chats, text messaging, web-browsing sessions, and othermulti-media transactions.

Inbound and outbound telephony calls from and to the end users devices10 may traverse a telephone, cellular, and/or data communication network14 depending on the type of device that is being used. For example, thecommunications network 14 may include a private or public switchedtelephone network (PSTN), local area network (LAN), private wide areanetwork (WAN), and/or public wide area network such as, for example, theInternet. The communications network 14 may also include a wirelesscarrier network including a code division multiple access (CDMA)network, global system for mobile communications (GSM) network, or anywireless network/technology conventional in the art, including but tolimited to 3G, 4G, LTE, and the like.

According to one exemplary embodiment, the contact center includes aswitch/media gateway 12 coupled to the communications network 14 forreceiving and transmitting telephony calls between end users and thecontact center. The switch/media gateway 12 may include a telephonyswitch configured to function as a central switch for agent levelrouting within the center. The switch may be a hardware switching systemor a soft switch implemented via software. For example, the switch 12may include an automatic call distributor, a private branch exchange(PBX), an IP-based software switch, and/or any other switch configuredto receive Internet-sourced calls and/or telephone network-sourced callsfrom a customer, and route those calls to, for example, an agenttelephony device. In this example, the switch/media gateway establishesa voice path/connection (not shown) between the calling customer and theagent telephony device, by establishing, for example, a connectionbetween the customer's telephony device and the agent telephony device.

According to one exemplary embodiment of the invention, the switch iscoupled to a call server 18 which may, for example, serve as an adapteror interface between the switch and the remainder of the routing,monitoring, and other call-handling components of the contact center.

The call server 102 may be configured to process PSTN calls, VoIP calls,and the like. For example, the call server 102 may include a sessioninitiation protocol (SIP) server for processing SIP calls. According tosome exemplary embodiments, the call server 102 may, for example,extract data about the customer interaction such as the caller'stelephone number, often known as the automatic number identification(ANI) number, or the customer's internet protocol (IP) address, or emailaddress, and communicate with other CC components and/or CC iXncontroller 18 in processing the call.

According to one exemplary embodiment of the invention, the systemfurther includes an interactive media response (IMR) server 34, whichmay also be referred to as a self-help system, virtual assistant, or thelike. The IMR server 34 may be similar to an interactive voice response(IVR) server, except that the IMR server is not restricted to voice, butmay cover a variety of media channels including voice. Taking voice asan example, however, the IMR server may be configured with an IMR scriptfor querying calling customers on their needs. For example, a contactcenter for a bank may tell callers, via the IMR script, to “press 1” ifthey wish to get an account balance. If this is the case, throughcontinued interaction with the IMR, customers may complete servicewithout needing to speak with an agent. The IMR server 34 may also askan open ended question such as, for example, “How may I assist you?” andthe customer may speak or otherwise enter a reason for contacting thecontact center. The customer's speech may then be processed by thespeech recognition module 44 and the customer's response may then beused by the routing server 20 to route the call to an appropriatecontact center resource.

In more detail, a speech driven IMR receives audio containing speechfrom a user. The speech is then processed to find phrases and thephrases are matched with one or more speech recognition grammars toidentify an action to take in response to the user's speech. As usedherein, the term “phrases” may also include “fragments” in which wordsare extracted from utterances that are not necessarily sequential. Assuch, the term “phrase” includes portions or fragments of transcribedutterances that omit some words (e.g., repeated words and words with lowsaliency such as “um” and “ah”). For example, if a user says “what is myaccount balance?” then the speech driven IMR may attempt to matchphrases detected in the audio (e.g., the phrase “account balance”) withexisting grammars associated with actions such as account balance,recent transactions, making payments, transferring funds, and connectingto a human customer service agent. Each grammar may encode a variety ofways in which customers may request a particular action. For example, anaccount balance request may match phrases such as “account balance,”“account status,” “how much money is in my accounts,” and “what is mybalance.” Once a match between the spoken phrase from the user and agrammar is detected, the action associated with the grammar is performedin a manner similar to the receiving a user selection of an actionthrough a keypress. These actions may include, for example, a VoiceXMLresponse that is dynamically generated based on the user's request andbased on stored business information (e.g., account balances andtransaction records).

In some embodiments, the routing server 20 may query a customerdatabase, which stores information about existing clients, such ascontact information, service level agreement (SLA) requirements, natureof previous customer contacts and actions taken by contact center toresolve any customer issues, and the like. The database may be, forexample, Cassandra or any non-SQL database, and may be stored in a massstorage device 30. The database may also be a SQL database an may bemanaged by any database management system such as, for example, Oracle,IBM DB2, Microsoft SQL server, Microsoft Access, PostgreSQL, MySQL,FoxPro, and SQLite. The routing server 20 may query the customerinformation from the customer database via an ANI or any otherinformation collected by the IMR server 34.

According to one exemplary embodiment of the invention, the mass storagedevice(s) 30 may store one or more databases relating to agent data(e.g. agent profiles, schedules, etc.), customer data (e.g. customerprofiles), interaction data (e.g. details of each interaction with acustomer, including reason for the interaction, disposition data, timeon hold, handle time, etc.), and the like. According to one embodiment,some of the data (e.g. customer profile data) may be maintained in acustomer relations management (CRM) database hosted in the mass storagedevice 30 or elsewhere. The mass storage device may take form of a harddisk or disk array as is conventional in the art.

The various servers of FIG. 1 may each include one or more processorsexecuting computer program instructions and interacting with othersystem components for performing the various functionalities describedherein. The computer program instructions are stored in a memoryimplemented using a standard memory device, such as, for example, arandom access memory (RAM). The computer program instructions may alsobe stored in other non-transitory computer readable media such as, forexample, a CD-ROM, flash drive, or the like. Also, although thefunctionality of each of the servers is described as being provided bythe particular server, a person of skill in the art should recognizethat the functionality of various servers may be combined or integratedinto a single server, or the functionality of a particular server may bedistributed across one or more other servers without departing from thescope of the embodiments of the present invention.

In the various embodiments, the term interaction is used generally torefer to any real-time and non-real time interaction that uses anycommunication channel including, without limitation telephony calls(PSTN or VoIP calls), emails, vmails (voice mail through email), video,chat, screen-sharing, text messages, social media messages, webreal-time communication (e.g. WebRTC calls), and the like.

Some embodiments of the present invention are described in the contextof a contact center. However, embodiments of the present invention arenot limited thereto and may also be used in under other conditionsinvolving configuration of the detection of commands in a speech drivenuser interface.

Generally, an interaction between a customer and a contact centerincludes a customer side and a human agent side. As noted above, aninteractive media response (IMR) system 34 may be used to provide aspeech enabled self-help system to attempt to replace the human agent inthe interaction.

When a customer calls a contact center and interacts with the IMR 34,the customer (or caller) may progress along a route through the dialoguetree based on the customer's responses until the customer's issue isresolved or until the customer is transferred to a human agent. Theroutes through dialogue tree may alternate between automated agentspeech played to the customer and grammars for recognizing customerspeech (e.g., GRXML). The customer may be routed along different pathsof the dialogue tree based on the spoken phrase.

FIG. 2 is an abstract visualization of an exemplary dialogue graph ordialogue tree. The various nodes of the tree correspond to outputs fromthe IMR 34 (e.g., messages conveyed from the IMR 34 to the customer) orinputs received from the customer (e.g., the customer's responses to theIMR's prompts). The various nodes may be grouped into “layers,” wherethe layers are numbered based on distance from the root of the tree.

The dialogue tree in FIG. 2 may correspond to a portion of a customerself-help system for an airline company. Referring to FIG. 2, in Layer 0(e.g., the root node 202 of the tree), in response to the customer'sestablishing a connection to the self-help system (e.g., by dialing thephone number of the contact center) the automated agent may ask thecustomer “How may I assist you?” This may be provided, for example, byone or more of prerecorded phrases, text-to-speech techniques,transmitting the text to the user (e.g., through a chat interface), orother appropriate techniques for interacting with a customer.

In response to the agent's question, the customer (or caller) mayrespond with any of a number of potential grammars. The customer'sresponse is processed by the node 212 in Layer 1, as shown in FIG. 2.Node 212 of the tree may correspond to a grammar for parsing the userinput and may be implemented using a general GRXML. The grammarcorresponding to node 212 may be used to detect phrases such as A. “Iwant to book a flight,” B. “I've lost my account password,” and C. “Iwant to speak with a supervisor.” The grammar may be configured to matchvariations of phrases having equivalent meaning, such as “Book aflight,” “make a flight reservation,” and “I want to fly to SanFrancisco” for booking flights or “Reset my password,” “I've forgottenmy password,” “Change my password” for resetting a password.

Based on the detected action, the customer may be routed to anappropriate node in the tree. For example, when a customer says thatthey would like to book a flight, the self-help system may route thecustomer to node 222 of Layer 2 for the automated agent to ask for adestination and node 232 of Layer 3 includes the definition of a grammarfor detecting various valid destinations in various forms (e.g., “SanFrancisco,” “Los Angeles,” “New York,” “SFO,” “LAX,” “JFK,”“LaGuardia”).

Alternatively, if the user says that they would like to reset theirpassword, the self-help system routes the customer to node 224 of Layer2, in which case the system prompts for a user name and node 234 mayinclude the definition of a grammar for recognizing the spelling out ofa user name (e.g., detecting individual letters and numbers).

Other Layer 2 nodes (e.g., node 226) may be provided in the tree tohandle different types of input provided by the customer in node 212,such as detecting a request to route the call to a human supervisor or arequest for information about an existing reservation.

Computer Assisted Customization of Self-Help Systems

Aspects of embodiments of the present invention are directed to systemsand methods for assisting a designer of a self-help system in designinga dialogue graph (e.g., a dialogue tree) or automatically generating thedialogue graph, where the specifies the way in which a customerinteracts with an automated self-help system. Aspects of embodiments ofthe present invention may use automatically generated Voice-XML andGRXML of possible dialogue (e.g., possible phrases spoken by a customerduring an interaction) based on grammar building blocks extracted duringa data-driven setup process as described in more detail in U.S. patentapplication Ser. No. 14/799,369 “DATA DRIVEN SPEECH ENABLED SELF-HELPSYSTEMS AND METHODS OF OPERATING THEREOF,” the entire disclosure ofwhich is incorporated herein by reference.

Aspects of embodiments of the present invention may also use automaticdialogue expansion to automatically suggest new dialogue routes to thegrammar, where the routes may be suggested based on a phrase or asentence manually entered by the designer of the self-help system.

According to one embodiment of the present invention, the automatedself-help configuration module 45 may be used to configure the dialoguetrees presented by the IMR 34. In particular, a system administrator orapplication designer may use the user interface 45 b of the automatedself-help configuration module 45 to configure the IMR 34. The automatedself-help configuration module 45 may provide recommendations to assistthe system designer in selecting and arranging the nodes of the dialoguetree based on information gathered from previous recorded conversations.

According to one aspect of embodiments of the present invention, acollection of recorded interactions (e.g., stored in the call recordingstorage 42 and the recognized text storage 46) between customers andhuman agents is collected and analyzed to generate the information forassisting system administrators in configuring the IMR 34 self-helpsystem, where the recorded interactions relate to the types ofcircumstances to be handled by the automated self-help system. Forexample, to configure an airline company's self-help system for bookingflights, the input recorded interactions should be those betweencustomers and human agents related to the booking of flights.

FIG. 3 is a flowchart illustrating a method 300 for extractinginteraction data from recorded interactions according to one embodimentof the present invention. Referring to FIG. 3, the method 300 forextracting data from existing interactions includes: preparing data 310,extracting clusters 330, pruning data 350, mining the dialogue tree 370to generate mined dialogue tree data, supplying the mined preliminary orraw dialogue tree data to the user interface 380, and generating adialogue tree based on user input and the mined dialogue tree 390.

According to one embodiment of the present invention, any necessaryinitial processing on recorded interaction data is performed inoperation 310. For example, the recorded data may include audiorecordings of voice conversations between customers and agents.According to some embodiments of the present invention, the lateroperations analyze the customer audio and the agent audio separately. Assuch, in circumstances where the audio recordings are “mono-channel” or“single channel” data where the customer and agent audio are on a singlechannel, speaker separation and classification techniques may be appliedto the recorded interactions to generate “dual channel” audio in whichthe customer and agent speech are separated from one another (e.g., indifferent channels of the audio). Each interaction may be associatedwith a unique corresponding interaction identifier (or “interactionID”).

In operation 330, clusters (or topics) are extracted from the preparedinteraction data to generate a plurality of extracted clusters (ortopics). Techniques for automatically extracting clusters are describedin, for example, U.S. patent application Ser. No. 14/799,369 “DataDriven Speech Enabled Self-Help Systems and Methods of OperatingThereof,” the entire disclosure of which is incorporated herein byreference. These extraction techniques can be performed by the clusterextraction module 45 a of the automated self-help configuration module45. The extracted clusters include fragments of interactions that aresemantically the same or similar, where each cluster includesinformation about which interaction it was found in (e.g., itsassociated interaction ID) and its location within the interaction(e.g., fragment start time if it is a spoken interaction or wordlocation if the interaction is a text interaction such as an email). Theclustering is performed separately on the customer and agent datastreams.

Each cluster (or topic) is associated with a unique identifier (or“cluster ID” or “topic ID”) and corresponds to a particular conceptwithin an interaction. For example, some clusters may be associated withgreetings, some clusters may be associated particular requests (e.g.,various ways for a customer to state that the he or she wants to book aflight or various ways for an agent to request payment information) orparticular responses (e.g., various ways to state departure and arrivalcities or to state a seat preference).

As such, each interaction may be represented as a sequence of clustersor sequence of topics (e.g., the clusters corresponding to the fragmentsfound in the interaction) along with an indication of whether a customeror an agent was the speaker (or, in the case of a text interaction, thewriter) of the fragment.

FIG. 4A is a schematic diagram illustrating an interaction between anagent and a customer, as abstracted into a sequence of clusters (ortopics), according to one embodiment of the present invention. As shown,the agent side and customer side of the interaction are shown inseparate lines. In this interaction, the agent began by stating afragment from cluster A (e.g., a greeting), the customer responded witha fragment from cluster D (e.g., a response to a greeting) followed by afragment from cluster F (e.g., a request to book a flight). The agentresponded to the customer's fragment from cluster F with a fragment fromcluster C (e.g., a request for a departure city) and the customerresponded with a fragment from cluster S (e.g., the name of a departurecity). The agent followed up with a fragment from cluster G (e.g., arequest for a destination city) and the customer responded with afragment from cluster B (e.g., the destination city name).

FIG. 4B is a schematic illustration of a sequence of clusters (ortopics) generated from the separately recognized clusters (or topics),according to one embodiment, where the sequence includes an indicationof the speaker of the fragment associated with the clusters. In FIG. 4B,the clusters associated with the agent are labeled with circles and theclusters associated with the customer are labeled with squares. In theexample given above with respect to FIG. 4A, the cluster (or topic)sequence A, D, F, C, S, G, and B was generated.

In operation 350, the resulting sequences of clusters corresponding tointeractions are filtered or pruned by the sequence pruning module 45 cbased on a criterion, e.g., based on whether the sequences resulted insuccessful interactions (e.g., to filter out unsuccessful interactions).According to one embodiment of the present invention, sequences areconsidered successful interactions based on one or more factors. Onesuch factor is interactions that did not follow with a repeat call aftera given period of time (e.g., two weeks) because a repeat call suggeststhat the first call did not resolve all of the issues. Another factormay be computed based on sentiment analysis (e.g., analysis of theclusters identified in the sequence and whether any of those clustersare associated with phrases of anger or disgust). A third factor may becomputed based on explicit indications of successful interactions suchas a customer's saying “thank you, you've been very helpful” or anagent's saying “is there anything else I can help you with?” On theother hand, an explicit indication of an unsuccessful interaction is acustomer's escalation request such as: “I'd like to speak to yoursupervisor.”

After the unsuccessful interactions have been filtered out, theremaining, successful sequences are mined in operation 370 by the treemining module 45 d to generate data associated with the dialogue tree,as described in more detail below. This data may be used to generate adialogue tree or to generate recommendations for the system designerwhen constructing a dialogue tree.

In another embodiment of the present invention, in operation 350sequences are pruned to filter out the successful interactions and themining of operation 370 is performed on the unsuccessful interactions togenerate data for warning a system designer if he or she attempts todesign a dialogue tree with a “bad” sequence.

As described above, the speech enabled self-help system of the IMR 34may be modeled as a dialogue tree with directed edges (or transitions).Formally, the dialogue tree T may include nodes representing a turnoutput of the agent side and grammars of potential responses fromcustomers and the directed edges correspond to the actual input duringthe customer side turn.

As such, a system for supporting the design of the speech enabledself-help system is directed to designing a tree T that reflects typicalsuccessful sequential patterns of clusters observed in priorinteractions between customers and human agents. In other words, in thedesigned tree T each of paths from the root node to the leavescorresponds to a common sequence of clusters in a successful interactionbetween an agent and a customer. In such a tree, each agent nodedescribes the output for that node and each client node indicates thepotential input for each of the edges and the destination node for eachof those edges.

According to one embodiment of the present invention, the dialogue treeis generated by identifying only the most frequent subsequences ofclusters. Feeding all of the sequences of successful interactions into apattern mining algorithm can generate subsequences of frequent clusters.One such mining technique is described, for example, in U.S. patentapplication Ser. No. 13/952,470 “System and Method For Discovering andExploring Concepts and Root Causes of Events,” the entire disclosure ofwhich is incorporated herein by reference. The resulting frequentsubsequences of clusters may be supplied as suggestions of routes to thesystem designer via the user interface 45 b and the system designer mayconnect these subsequences together to form the tree, as described inmore detail below.

In another embodiment of the present invention, the tree mining module45 d generates an entire tree of potential interactions, as described inmore detail below.

FIG. 5 is a flowchart illustrating a method for mining the prunedcollection of sequences of clusters to generate a dialogue treeaccording to one embodiment of the present invention. According to thisembodiment of the present invention, mining the dialogue tree 370includes generating sequences of cluster IDs 372 and building apreliminary or raw tree of clusters 374. After mining the preliminarydialogue tree, in operation 380 the preliminary tree may be supplied tothe user interface 45 b and an output dialogue tree for the self-helpsystem can then be generated in operation 390 based on the preliminarytree data and additional user input 377.

In one embodiment, generating the sequences of cluster identifiers fromthe pruned sequences in operation 372 includes condensing the sequencesby removing consecutive repetitions of cluster identifiers. Some methodsfor doing so according to embodiments of the present invention aredescribed in more detail in the above referenced U.S. patent applicationSer. No. 13/952,470 “System and Method For Discovering and ExploringConcepts and Root Causes of Events.” For example, the sequenceA-D-D-D-F-C-C-S-G-B may be condensed by replacing the consecutiverepetitions D-D-D and C-C with a single instance of each (e.g., D and C,respectively) to generate the condensed sequence A-D-F-C-S-G-B.

In operation 374, the automated self-help system configuration module 45generates the preliminary dialogue tree T from the condensed sequencesby matching starting subsequences of the sequences (or “prefixes” of thesubsequences). FIG. 6 is an example of an automatically generatedpreliminary dialogue tree T according to one embodiment of the presentinvention, discussed in more detail below.

According to one embodiment of the present invention, an approachsimilar to the PrefixSpan algorithm described in Pei, J., Han, J.,Mortazavi-Asl, B., Wang, J., Pinto, H., Chen, Q., . . . & Hsu, M. C.(2004). Mining Sequential Patterns by Pattern-Growth: The PrefixSpanApproach. Knowledge and Data Engineering, IEEE Transactions on, 16(11),1424-1440, the entire disclosure of which is incorporated herein byreference.

In more detail, according to one embodiment of the present invention,one input of the PrefixSpan algorithm is a minimum support k (or numberof occurrences, e.g., the minimum number of occurrences of a particularsequence within the entire collection of input sequences) such that anyfrequent pattern mined using the algorithm has support greater than orequal to k. The value of k can be set or adjusted by a user (e.g., thesystem designer) based on characteristics of the input collection ofrecorded interactions (e.g., based on how frequently a sequence needs tooccur in the recorded interactions order for that sequence to beconsidered a frequent pattern).

In a standard application of the PrefixSpan algorithm to a projecteddatabase (PDB) of each frequent pattern α, the algorithm counts thenumber of suffixes that contain each cluster ID in order to find thosethat appear frequently enough to meet the support threshold k.

Similarly, in embodiments of the present invention, the supportthreshold k corresponds to the concept that, in the output dialogue treeT, every path from the root to the leaves has support≥k (e.g., that, forevery sequence of clusters found along path from the root to the leavesof the tree, there are at least k instances of the sequence in thecollection of recorded interactions or the sequence database (SDB) whichserves as an input to the dialogue tree mining process described in moredetail below).

However, in contrast to the standard PrefixSpan algorithm, according toone embodiment of the present invention, the automated self-help systemconfiguration module 45 counts only clusters of the “other side” (e.g.,a side that is complementary to the last side of a). For example, if theprefix pattern α ends with an agent (A) cluster, then only customer (C)clusters will be counted and vice versa. Building the prefix tree inthis way results in a tree with alternating layers of A clusters and Cclusters. In addition, embodiments of the present invention explicitlyconstruct the dialogue tree T. In particular, for each frequent clusterx, the automated self-help configuration module 45 connects a child nodex to the parent node α and continues developing the tree recursivelyfrom the projected database (PDB) S|_(α∘x) where S is the sequencedatabase (SDB), S|_(α) is the PDB of S with prefix α (the PDB having aset of suffixes of sequences in S that come right after the pattern α inthe sequence), α∘x is the concatenation of the pattern α and thesequence x. Generally, a PDB S|_(α∘x) may be constructed by counting thenumber of sequences a symbol x appears in the current layer and itslocation in the sequence. If the count exceeds a support threshold, thena PDB is created with a prefix ending with x and the items in the PDBare extracted according to the identified locations in the sequences.

FIG. 6 is an example of an automatically generated preliminary dialoguetree according to one embodiment of the present invention. The exampledialogue tree alternates between agent layers (Layers 0 and 2) andcustomer layers (Layer 1), however embodiments of the present inventionare not limited thereto and may generate trees having more than threelayers. In FIG. 6, the nodes of the agent layers are labeled with theletter A and the nodes of the customer layer are labeled with the letterC. Layer 0 includes only node A₁ and includes three outgoing edges tothe three nodes of Layer 1: C₁, C₂, and C₃. The nodes of Layer 1correspond to different types of responses that are observed from acustomer. Layer 2 includes the nodes A₂, A₃, A₄, A₅, A₆, and A₇. Twoedges connect node C₁ to nodes A₂ and A₃, respectively. Similarly, threeedges connect node C₃ to nodes A₅, A₆, and A₇, respectively and one edgeconnects node C₂ to node A₄. Nodes A₂ and A₃ are grouped together andnodes A₅, A₆, and A₇ are grouped together, as indicated by the ovalsdrawn around these nodes. In particular, this indicates that the contentof nodes A₂ and A₃ may be merged together and the content of nodes A₅,A₆, and A₇ may be merged. The merged nodes may have substantiallydifferent content. For example, if node C₁ corresponded to the customerstatement: “I want to book a flight,” then node A₂ might be correspondto the agent response: “Where would you like to go?” and node A₃ mightcorrespond to the agent response: “When do you want to depart?” As such,according to some embodiments of the present invention, during thedesign process, the system designer may select a particular one of thenodes to be included in the final dialogue tree. The nodes may beselected based on one or more criteria, such as duration of thedialogue, successful completion, and customer satisfaction.

The generation of the dialogue tree (DialogueTreeMiner) in operation 374may be represented by the following pseudocode, where α is the currentprefix pattern (e.g., a sequence of clusters), S|_(α) is the PDB withprefix α, side(x) is the side A or C of cluster id x, last(α) is thelast cluster id in prefix α, and sup(c) is the support for c in relationto the PDB S|_(α).

DialogueTreeMiner(Prefix α, PDBS|_(α), Tree T)

a. Scan S|_(α) and find frequent clustersF={cluster x|side(x)≠side(last(α))∧sup(x)≥k}

b. For each bΣF

-   -   i. α′=α∘b //Concatenation of α and b    -   ii. Build PDB S|_(α′)    -   iii. SubTree←DialogueTreeMiner(α′, S|_(α′), T)    -   iv. CreateNode(α)    -   v. Extend T by connecting SubTree as a child to the current        parent node α

c. Return T

The process may begin by making the initial function call:

-   -   DialogueTreeMiner(E, S, EmptyTree)        where S is the whole sequence database (SDB), ∈ is the empty        string, and last(∈) is defined as C, and EmptyTree is a tree        initialized with an ∈ node.

The result of running the DialogueTreeMiner is a tree T where all of itspaths have support≥k and have a dialogue structure of A→C→A→C.Alternatively, the tree T can be considered as containing all of thepaths with those characteristics from the SDB.

In operation 380, the automated self-help configuration module 45 thensupplies the resulting tree T to the user interface 45 b. The systemdesigner may then review the resulting tree to choose a root node, e.g.,the phrase that the automated agent of the IMR 34 should start with.Generally, the root is the most frequent one of the clusters having thehighest support, such as a “greeting” cluster. The system designer maysupply user input 377 to generate the final tree in operation 390.

In another embodiment of the present invention, the system designeridentifies the root node before running the DialogueTreeMiner processand, instead, supplies the selected root node to DialogueTreeMiner,e.g., by making the initial function call:

-   -   DialogueTreeMiner(“Greeting”,S,CreateNode(“Greeting”))

In operation 390, the resulting tree T is used to design the final agentnodes and caller transitions based on additional user input 377 from thesystem designer. Generally, agent cluster nodes (that are child nodes tocustomer cluster nodes) correspond to different possibilities for whatthe automated agent may say in the dialogue. These groups of clustersare merged by the designer to build a response for the agent side atthat point of an interaction. For example, in one embodiment the agentnodes are merged into Voice-XML entries representing the current menu.

Caller cluster nodes (that are children of an agent cluster node)correspond to the different possibilities for what a customer can say inthe self-help system dialogue. This group of clusters may be used by thedesigner to build a grammar for recognizing the various typical forms ofuser input in the interaction at this point in the interaction and, inone embodiment, are merged into a GRXML grammar representing the variousgrammars, where each slot in the GRXML corresponds to a differentcustomer cluster and each customer cluster determines the routing forthe next dialogue by directing to the appropriate descendent in the tree(see, e.g., the three customer nodes C₁, C₂, and C₃ in Layer 1 of FIG. 6with corresponding descendent nodes in Layer 2).

FIG. 7 illustrates a resulting dialogue tree generated in operation 390based on the tree shown in FIG. 6 and based on user input 377, where theagent nodes A₂, A₃, A₄, A₅, A₆, and A₇ are replaced with merged agentnodes A₂+A₃, A₄, and A₅+A₆+A₇ and the customer nodes C₁, C₂, and C₃ arereplaced with labeled edges corresponding to the grammars (e.g., GRXMLgrammars) developed for each of these nodes.

Automatic Dialogue Expansion

One aspect of embodiments of the present invention is directed tosystems and methods for assisting a system designer in building a richdialogue tree that covers the different routes that a customer maypotentially choose during the interaction. These techniques may also beused to improve or optimize existing self-help systems.

FIG. 8 is a flowchart illustrating a method 800 for performing automaticdialogue expansion according to one embodiment of the present invention.

According to one embodiment of the present invention, the dialogueexpansion module 45 e of the automated self-help system configurationmodule 45 applies systems and techniques described in U.S. patentapplication Ser. No. 14/586,730 “System and Method for InteractiveMulti-Resolution Topic Detection and Tracking” to all of the availablerecorded interactions in operation 810 to detect topics within therecorded interactions.

In operation 830, one or more input phrases are received. These inputphrases may be, for example, phrases found in an existing dialogue treeor may be phrases that are input by a system designer via the userinterface 45 b while the user is designing or modifying a dialogue tree.

For each of the received input phrases, in operation 850 the automatedself-help configuration module identifies a list of one or more probableclusters corresponding to the phrase (e.g., based on computing semanticdistances between the input phrase and each of the clusters andidentifying clusters having a semantic distance below a threshold). Theidentified clusters may then be inserted into the dialogue tree asexpansions of the existing grammars according to the sequences extractedin the automatic dialogue tree generation process described above,thereby allowing the self-help system to recognize a wide range ofpossible customer responses, as mined from previously recordedinteractions.

The identified clusters may also be displayed to the system designer viathe user interface 45 b in order for the system designer to decidewhether or not it would be appropriate to expand particular phrases inthe dialogue tree to include the identified clusters.

The suggested clusters may be added by adding the grammar (e.g., GRXML)for the cluster to the customer response edges of the dialogue tree. Thegrammars may be associated with the most probable clusters extracted bythe pattern mining process described above.

The system designer may also choose to add more than one cluster,thereby providing the user with multiple possible paths from the currentagent node to the next dialogue layer, thereby further enlarging thedialogue graph.

According to one embodiment of the present invention, when a systemdesigner adds a grammar for a customer response, the automated self-helpsystem configuration module 45 may also suggest possible paths of agentphrases to follow, based on the sequences and patterns extracted fromthe recorded interactions. For example, if the system designer adds acustomer edge for receiving a credit card number, the automatedself-help system configuration module 45 may suggest that the agent askfor a credit card expiration date if the automated self-help systemconfiguration module 45 detected the pattern “credit card number,”“request for expiration date,” and “expiration date” in many of therecorded interactions.

If the system designer inserts a new phrase to be spoken by theautomated self-help system of the IMR 34 (e.g., a text phrase to beprocessed by a text-to-speech module) as part of the VoiceXML, then thedialogue expansion module 45 e may generate one or more alternativephrases that may be used instead of the inserted phrase. Thesealternative phrases may be generated by identifying the cluster that isclosest to the new phrase and providing the phrases found in thatcluster.

In operation 870, the automated self-help configuration module 45modifies the dialogue tree based on, for example, the detected clustersmatching phrases and/or based on the input from the system designer andreturns the updated dialogue tree.

According to another embodiment of the present invention, a dialogue canbe expanded from a certain point x by mining a tree rooted at this pointx by calling

-   -   DialogueTreeMiner(“X”,S,CreateNode(“X”))        thereby resulting in a whole new subtree of options that can be        concatenated to the current dialogue after processing.

FIG. 9 is a diagram illustrating a process according to one embodimentof the present invention for a system designer to add an agent node to adialogue tree. FIG. 10 is a screenshot of a user interface providingsuggested alternative agent phrases according to one embodiment of thepresent invention. As seen in FIGS. 9 and 10, the system designer entersthe input phrase 1010 “Please state your destination” using the userinterface module 45 b to create a new node. The automated self-helpsystem configuration module 45 suggests the semantically equivalentphrases 1020 “Where do you want to go?” “What is your destination?” and“Please choose a destination” by matching the input phrase “Please stateyour destination” with the closest matching cluster (e.g. “Cluster A”).The system designer can then select from these alternatives based onwhich phrase is used most frequently or which phrase sounds the mostnatural or comfortable.

Referring to FIG. 9, the automated self-help system configuration module45 may also automatically suggest probable customer response clusters.FIG. 11 is a screenshot of a user interface providing suggested grammarsbased on the provided input according to one embodiment of the presentinvention. For example, after determining that the input phrase “Pleasestate your destination” corresponds to cluster A and assuming that theprevious mining of the recorded interactions determines that cluster B,where the customer provides a destination, is the most probable clusterto follow cluster A, the automated self-help system configuration module45 may suggest adding a grammar 1120 (e.g., GRXML) for matching“destinations.”

As such, aspects of embodiments of the present invention provide systemsand methods for automatically mining recorded interactions to detectfrequent patterns of interactions between customers and agents and touse the result of the mining process to assist system designers indesigning and customizing a dialogue true for an automated self-helpsystem by suggesting alternative phrases on the agent side, likelygrammars on the customer side, and likely sequences of agent andcustomer clusters in the dialogue tree.

Dialogue Flow Optimization

As discussed above, when the automated self-help configuration module 45suggests clusters or phrases to a system designer, the system designermay select an appropriate next cluster in the dialogue tree based on hisor her judgment.

Some aspects of embodiments of the present invention are directed to asmart filtering framework for creating an optimized dialogue byfiltering the input data according to one or more of criteria (e.g.,based on the similarity function and clustering described below) inorder to improve or optimize the dialogue flow. These criteria mayinclude, for example: overall interaction time (or interaction length),ease of use (e.g., sequences appearing more frequently in the recordedinteractions), success rate, and combinations thereof. After filteringthe data, the DialogueTreeMiner process described above may be appliedto the filtered input, resulting in a dialogue tree (DT) that isadjusted (e.g., improved or optimized) based on the chosen criteria(e.g., interaction length, success rate, and customer satisfaction). TheDialogueTreeMiner process can be used to define a dialogue tree systemfrom scratch or to expand an existing dialogue tree system as describedabove in the section “Automatic Dialogue Expansion.”

Some aspects of embodiments of the present invention are directed toautomatically or semi-automatically choosing the paths of the outputdialogue tree given a raw tree output from the DialogueTreeMinerprocess, where the choice of the best path may be determined, in part,by optimization criteria such as interaction length, success rate, andcustomer satisfaction.

In addition, other aspects of embodiments of the present invention aredirected to providing a personalized interaction experience with theautomated self-help system, where the interaction is personalized inreal-time based on the caller's characteristics such as gender, age,location, and other information known about the customer. This may alsobe done dynamically during the call, for instance, by detecting thegender of the customer automatically during the call (see, e.g., GDNN—AGender Dependent Neural Network for Continuous Speech Recognition[Konig, et al 1991]).

According to one embodiment of the present invention, when the systemthe automated self-help configuration module 45 suggests, via the userinterface 45 b, different paths (e.g., nodes and edges) to add to adialogue tree, where the suggestions are sorted by each of the criteriaor combinations thereof (e.g., a linear combination of the criteria).

FIG. 12A is a schematic diagram of a process for clustering, filtering,and mining interactions 1282 to generate a dialogue tree according toone embodiment of the present invention. In order to perform filteringon the set of sequences of cluster ids to filter out unwantedinteractions without losing the semantic topics discussed in the dataset. Generally, this involves representing each interaction at a highersemantic level (e.g., representing the interactions with a lowdimensional bag of clusters assigned for each interaction), defining asimilarity function operating in the space of this higher semanticlevel, applying the similarity function to cluster the interactions intosubsets 1284, each subset corresponding to interactions with differentsemantic content, and filtering each of the subsets independently bytaking the top percentiles of data from each subset and combining thesubsets together (oval 1286). The combined, filtered interactions 1288may then be supplied to the DialogueTreeMiner process 370 to generate adialogue tree 1290.

FIG. 12B is a flowchart illustrating a method 1200 for rating theperformance of various sequences in more detail. In operation 1210, therecorded interactions are analyzed to represent each interaction as afeature vector ν or “bag of clusters” (where the kth interaction may berepresented by the feature vector ν_(k)) that corresponds to theclusters contained in the interaction. For example, interactions thatrelate to booking a flight will include phrases from a first set ofclusters while interactions containing phrases that relate to changing apassword will include phrases from a second, different set of clusters.

In operation 1230, the similarities between pairs of feature vectors(ν₁, ν₂) are computed to generate a set of feature vector similarities.Similar interactions (e.g., interactions having a similarity above athreshold) are grouped together in operation 1250 and the interactionsin each group are rated based on the given criteria in operation 1270(e.g., the interactions can be ranked within each group).

When rating sequences of clusters based on criteria that do not dependon success rate, such as interaction time and ease of use, onlysuccessful interactions are analyzed. On the other hand, when ratingsequences based on success rate, all interactions are analyzed becausethe success rate is calculated based on:

$\frac{\#\mspace{11mu}{Successful}\mspace{14mu}{interactions}}{{\#\mspace{11mu}{Successful}\mspace{14mu}{interactions}} + {\#\;{Unsuccessful}\mspace{14mu}{interactions}}}$

FIG. 12C is a flowchart of a method for computing similarity between twobags of clusters (ν₁, ν₂) according to one embodiment of the presentinvention. (In the below discussion, ν_(i) ^(j) denotes cluster j in bagof clusters i.)

In operation 1232, the automated self-help configuration moduleinitializes the similarity D between ν₁ and ν₂ by summing up the numberof clusters which appear in both interactions. In other words, bycomputing the dot product between the two binary vectors of the bags ofclusters:D(ν_(i),ν₂)=ν₁ ^(T)·ν₂

In operation 1234, clusters appearing in one feature vector but not theother are accounted for by adding an adjustment term d for the clusterc_(i) that is not in common, where d(c_(i),ν_(p)) is defined as:

$\max\limits_{j}\left( {{Cosine}\mspace{14mu}{{Similarity}\left( {{{Word}\; 2{{Vec}\left( {{cluster}\mspace{14mu}{{label}\left( c_{i} \right)}} \right)}},{{Word}\; 2{{Vec}\left( {{cluster}\mspace{14mu}{{label}\left( v_{p}^{j} \right)}} \right)}}} \right)}} \right)$

This procedure may be performed for every cluster c_(i) detected in therecorded interactions such that the similarity D(ν₁,ν₂) is updatedaccording to:if (c _(i)∈ν₁ and c _(i)

ν₂) then D(ν_(i),ν₂)=D(ν₁,ν₂)+d(c _(i),ν₂)else if (c _(i)

ν₁ and c _(i)∈ν₂) then D(ν_(i),ν₂)=D(ν₁,ν₂)+d(c _(i),ν₁)

After summing up all of the similarities, in operation 1236 the computedsimilarity D(ν₁,ν₂) can be normalized by the vector size to get a valuebetween 0 and 1:

${D\left( {v_{1},v_{2}} \right)} = \frac{D\left( {v_{1},v_{2}} \right)}{\max\left( {{v_{1}}\;{v_{2}}} \right)}$

Bags of clusters with high similarity (e.g., above a threshold T) arethen considered to be similar interactions in operation 1250. As such,given the entire set of interactions and the similarity function above,the set of interactions can be clustered using a document clusteringmethod such as the one described in U.S. patent application Ser. No.13/952,470, incorporated by reference above, thereby resulting insubsets of interactions, where each interaction is a subset ofinteractions that are similar to one another at a higher, semanticlevel.

The rated interactions, sorted into groups, may then be filtered andthen presented to the system designer to aid in the design of thedialogue tree based on the suggestions. The filtered interactions can befeeded to the DTM algorithm for getting a tree pattern, or to a sequencemining algorithm for getting specific suggestions.

The filtering may be performed according to some optimization criteriaspecified by the system designer. The criteria may include, for example,time for resolution by organizing the interactions by time to resolutionof issue and identifying the low percentiles. The criteria may alsoinclude identify interactions exceeding a threshold level of success asdetermined, for example, looking for features of a call that indicatecustomer sentiment such as the presence of the “satisfaction” topic, theabsence of the “dissatisfaction” topic, a manual review of theinteraction, or the result of a customer survey (e.g., ratings on ascale of 1-5 and averaging the ratings across multiple interactions) orby using a repeated call (e.g., a customer calling again within a shorttime of a previous call) to identify customer dissatisfaction.

For example, in the case of improving the tree by attempting to reducethe amount of time spent for each interaction, all of the featurevectors corresponding to a particular desired path through the dialoguetree are presented to the designer, sorted by average time to completionof the interaction (e.g., average duration of interaction). For example,if the system designer is designing a portion of the dialogue tree forbooking flights, a group of sequences for previous interactionscorresponding to the booking of a flight may be presented and sortedbased on average resolution time for the particular sequence of clusters(e.g., interactions in which the agent asked for “departure city,”“destination city,” and “dates of travel,” in the stated order, may bein the same group as interactions in which the agent asked for “dates oftravel” before asking for “departure city” and “destination city,” butmay be represented as a different sequence).

As another example, when “popularity” or “frequency” is the selectedcriterion, it is assumed that routes or sequences of clusters that areused more frequently in interactions between customers and human agentscorrespond to the more common and comfortable patterns for the dialoguetree. Based on this example, instead of sorting the sequences by theaverage duration of the interaction, the sequences may be sorted by thefrequency with which they appear in the recorded interactions and adesigner may choose the more popular sequences for the dialogue treebecause these may be the most comfortable or familiar for a user.

As a third example, the sequences may be sorted by their success rates,e.g., the fraction of interactions that resulted in a successfulcompletion of the issue raised by the customer, such as booking a flightor changing a password. A designer may then choose the sequences that,in the past, have more frequently led to successful outcomes.

In another embodiment of the present invention, instead of presentingsuggestions for the system designer to choose from, the system mayautomatically choose the agent clusters and sequences according to theoptimization criteria (e.g., based on the shortest interaction time).

In some embodiments of the present invention, the dialogue tree isautomatically personalized based on characteristics of the customer.Customers interacting with a contact center can be very different fromone another. For example, during interactions with a self-help system ofa health care service, a 21 year old woman may typically have verydifferent interests and concerns than that of a 75 year old man (e.g.,21 year old woman is likely less interested in geriatric services thanthe 75 year old man).

According to one embodiment of the present invention, a plurality ofdialogue trees are generated, where each tree may be customized forparticular types of customers. When the customer begins an interactionwith the self-help system, the self-help system uses a set of featuresthat are known about the customer and that are relevant to thepersonalization process (e.g., age, gender, location, previousinteractions, owned products, and previously used services) to identifyand assign the corresponding dialogue tree.

The set of features can be made available through an existing customerrelationship management (CRM) system or by active input from thecustomer, or by automatically extracting this information from othermetadata (e.g., geolocation services on the device used by thecustomer).

To generate the various customized dialogue trees, each recordedinteraction is a assigned a set of personalization features based onknown information about the customer involved in that interaction. Thepersonalization features associated with the recorded interactions maybe used during a pre-filtering stage to create several partitions of therecorded interactions, grouped by similar personalization features. Fromeach partition (e.g., each group of subsets), a dialogue tree is mined,thereby generating multiple dialogue trees—one for each partition of therecorded interactions. For example, the recorded interactions may bepartitioned by age and gender for customers under 18 years, 18-28 yearold males, 18-28 year old females, 29-45 year old males, 29-45 year oldfemales, 45-60 year old males, 45-60 year old females, etc. Geographiclocation may also be incorporated in a similar manner. At runtime (e.g.,at the beginning of an interaction), the features identified for thecurrent customer are used to select a dialogue tree suitable for thecurrent customer's properties from the set of possible dialogue trees.

According to another embodiment of the present invention, the best routefor a particular customer is chosen in real time (e.g., during theinteraction) from a shared dialogue tree based on the personal featuresof the customer. This embodiment may be used in situations where thereare insufficient recorded interactions to generate separate dialoguetrees for each partition and therefore a dialogue tree is generated formultiple partitions (e.g., a dialogue tree is shared between differentgroups of customers). During an interaction, nodes of the shareddialogue tree are chosen in real time based on the customer's features.For example, referring back to FIG. 6, if the interaction is current atnode C₃, and most successful interactions with customers having aprofile similar to the current customer (e.g., male with an age in therange 18-28) proceed with agent path A₆, then agent response A₆ isautomatically selected by the IMR 34 from among the possible agent nodesA₅, A₆, and A₇ that are connected to C₃. Generally, each agent node maybe associated with a personalization feature vector (e.g., distributionsof ages, distributions of genders, and distributions of locations) andthe choice of the agent node for the current interaction is made by theIMR 34 by comparing features known about the current customer with thefeature vectors associated with the agent nodes.

In some embodiments of the present invention, the features are comparedin a particular order until a single agent node is identified. Forexample, the location maybe compared first, then gender, and then age.In other embodiments of the present invention, a current customerfeature vector f is compared to cluster feature distributions c of eachof the agent nodes to determine a distance between the features f of thecurrent customer and mean feature vectors of each of the cluster featuredistributions c and an agent node is selected based on the smallestdistance.

As such, aspects of embodiments of the present can provide a systemdesigner with suggestions on which of a set of options to use in adialogue tree, based on information mined from previous recordedinteractions, thereby reducing the degree to which the system designermust rely on assumptions or intuition alone.

Computing Devices

As described herein, various applications and aspects of the presentinvention may be implemented in software, firmware, hardware, andcombinations thereof. When implemented in software, the software mayoperate on a general purpose computing device such as a server, adesktop computer, a tablet computer, a smartphone, or a personal digitalassistant. Such a general purpose computer includes a general purposeprocessor and memory.

Each of the various servers, controllers, switches, gateways, engines,and/or modules (collectively referred to as servers) in theafore-described figures may be a process or thread, running on one ormore processors, in one or more computing devices 1500 (e.g., FIG. 13A,FIG. 13B), executing computer program instructions and interacting withother system components for performing the various functionalitiesdescribed herein. The computer program instructions are stored in amemory which may be implemented in a computing device using a standardmemory device, such as, for example, a random access memory (RAM). Thecomputer program instructions may also be stored in other non-transitorycomputer readable media such as, for example, a CD-ROM, flash drive, orthe like. Also, a person of skill in the art should recognize that acomputing device may be implemented via firmware (e.g. anapplication-specific integrated circuit), hardware, or a combination ofsoftware, firmware, and hardware. A person of skill in the art shouldalso recognize that the functionality of various computing devices maybe combined or integrated into a single computing device, or thefunctionality of a particular computing device may be distributed acrossone or more other computing devices without departing from the scope ofthe exemplary embodiments of the present invention. A server may be asoftware module, which may also simply be referred to as a module. Theset of modules in the contact center may include servers, and othermodules.

The various servers may be located on a computing device on-site at thesame physical location as the agents of the contact center or may belocated off-site (or in the cloud) in a geographically differentlocation, e.g., in a remote data center, connected to the contact centervia a network such as the Internet. In addition, some of the servers maybe located in a computing device on-site at the contact center whileothers may be located in a computing device off-site, or serversproviding redundant functionality may be provided both via on-site andoff-site computing devices to provide greater fault tolerance. In someembodiments of the present invention, functionality provided by serverslocated on computing devices off-site may be accessed and provided overa virtual private network (VPN) as if such servers were on-site, or thefunctionality may be provided using a software as a service (SaaS) toprovide functionality over the internet using various protocols, such asby exchanging data using encoded in extensible markup language (XML) orJavaScript Object notation (JSON).

FIG. 13A-FIG. 13B depict block diagrams of a computing device 1500 asmay be employed in exemplary embodiments of the present invention. Eachcomputing device 1500 includes a central processing unit 1521 and a mainmemory unit 1522. As shown in FIG. 13A, the computing device 1500 mayalso include a storage device 1528, a removable media interface 1516, anetwork interface 1518, an input/output (I/O) controller 1523, one ormore display devices 1530 c, a keyboard 1530 a and a pointing device1530 b, such as a mouse. The storage device 1528 may include, withoutlimitation, storage for an operating system and software. As shown inFIG. 13B, each computing device 1500 may also include additionaloptional elements, such as a memory port 1503, a bridge 1570, one ormore additional input/output devices 1530 d, 1530 e and a cache memory1540 in communication with the central processing unit 1521. Theinput/output devices 1530 a, 1530 b, 1530 d, and 1530 e may collectivelybe referred to herein using reference numeral 1530.

The central processing unit 1521 is any logic circuitry that responds toand processes instructions fetched from the main memory unit 1522. Itmay be implemented, for example, in an integrated circuit, in the formof a microprocessor, microcontroller, or graphics processing unit (GPU),or in a field-programmable gate array (FPGA) or application-specificintegrated circuit (ASIC). The main memory unit 1522 may be one or morememory chips capable of storing data and allowing any storage locationto be directly accessed by the central processing unit 1521. As shown inFIG. 13A, the central processing unit 1521 communicates with the mainmemory 1522 via a system bus 1550. As shown in FIG. 13B, the centralprocessing unit 1521 may also communicate directly with the main memory1522 via a memory port 1503.

FIG. 13B depicts an embodiment in which the central processing unit 1521communicates directly with cache memory 1540 via a secondary bus,sometimes referred to as a backside bus. In other embodiments, thecentral processing unit 1521 communicates with the cache memory 1540using the system bus 1550. The cache memory 1540 typically has a fasterresponse time than main memory 1522. As shown in FIG. 13A, the centralprocessing unit 1521 communicates with various I/O devices 1530 via thelocal system bus 1550. Various buses may be used as the local system bus1550, including a Video Electronics Standards Association (VESA) Localbus (VLB), an Industry Standard Architecture (ISA) bus, an ExtendedIndustry Standard Architecture (EISA) bus, a MicroChannel Architecture(MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI Extended(PCI-X) bus, a PCI-Express bus, or a NuBus. For embodiments in which anI/O device is a display device 1530 c, the central processing unit 1521may communicate with the display device 1530 c through an AdvancedGraphics Port (AGP). FIG. 13B depicts an embodiment of a computer 1500in which the central processing unit 1521 communicates directly with I/Odevice 1530 e. FIG. 13B also depicts an embodiment in which local bussesand direct communication are mixed: the central processing unit 1521communicates with I/O device 1530 d using a local system bus 1550 whilecommunicating with I/O device 1530 e directly.

A wide variety of I/O devices 1530 may be present in the computingdevice 1500. Input devices include one or more keyboards 1530 a, mice,trackpads, trackballs, microphones, and drawing tablets. Output devicesinclude video display devices 1530 c, speakers, and printers. An I/Ocontroller 1523, as shown in FIG. 13A, may control the I/O devices. TheI/O controller may control one or more I/O devices such as a keyboard1530 a and a pointing device 1530 b, e.g., a mouse or optical pen.

Referring again to FIG. 13A, the computing device 1500 may support oneor more removable media interfaces 1516, such as a floppy disk drive, aCD-ROM drive, a DVD-ROM drive, tape drives of various formats, a USBport, a Secure Digital or COMPACT FLASH™ memory card port, or any otherdevice suitable for reading data from read-only media, or for readingdata from, or writing data to, read-write media. An I/O device 1530 maybe a bridge between the system bus 1550 and a removable media interface1516.

The removable media interface 1516 may for example be used forinstalling software and programs. The computing device 1500 may furtherinclude a storage device 1528, such as one or more hard disk drives orhard disk drive arrays, for storing an operating system and otherrelated software, and for storing application software programs.Optionally, a removable media interface 1516 may also be used as thestorage device. For example, the operating system and the software maybe run from a bootable medium, for example, a bootable CD.

In some embodiments, the computing device 1500 may include or beconnected to multiple display devices 1530 c, which each may be of thesame or different type and/or form. As such, any of the I/O devices 1530and/or the I/O controller 1523 may include any type and/or form ofsuitable hardware, software, or combination of hardware and software tosupport, enable or provide for the connection to, and use of, multipledisplay devices 1530 c by the computing device 1500. For example, thecomputing device 1500 may include any type and/or form of video adapter,video card, driver, and/or library to interface, communicate, connect,or otherwise use the display devices 1530 c. In one embodiment, a videoadapter may include multiple connectors to interface to multiple displaydevices 1530 c. In other embodiments, the computing device 1500 mayinclude multiple video adapters, with each video adapter connected toone or more of the display devices 1530 c. In some embodiments, anyportion of the operating system of the computing device 1500 may beconfigured for using multiple display devices 1530 c. In otherembodiments, one or more of the display devices 1530 c may be providedby one or more other computing devices, connected, for example, to thecomputing device 1500 via a network. These embodiments may include anytype of software designed and constructed to use the display device ofanother computing device as a second display device 1530 c for thecomputing device 1500. One of ordinary skill in the art will recognizeand appreciate the various ways and embodiments that a computing device1500 may be configured to have multiple display devices 1530 c.

A computing device 1500 of the sort depicted in FIG. 13A-FIG. 13B mayoperate under the control of an operating system, which controlsscheduling of tasks and access to system resources. The computing device1500 may be running any operating system, any embedded operating system,any real-time operating system, any open source operating system, anyproprietary operating system, any operating systems for mobile computingdevices, or any other operating system capable of running on thecomputing device and performing the operations described herein.

The computing device 1500 may be any workstation, desktop computer,laptop or notebook computer, server machine, handheld computer, mobiletelephone or other portable telecommunication device, media playingdevice, gaming system, mobile computing device, or any other type and/orform of computing, telecommunications or media device that is capable ofcommunication and that has sufficient processor power and memorycapacity to perform the operations described herein. In someembodiments, the computing device 1500 may have different processors,operating systems, and input devices consistent with the device.

In other embodiments the computing device 1500 is a mobile device, suchas a Java-enabled cellular telephone or personal digital assistant(PDA), a smart phone, a digital audio player, or a portable mediaplayer. In some embodiments, the computing device 1500 includes acombination of devices, such as a mobile phone combined with a digitalaudio player or portable media player.

As shown in FIG. 13C, the central processing unit 1521 may includemultiple processors P1, P2, P3, P4, and may provide functionality forsimultaneous execution of instructions or for simultaneous execution ofone instruction on more than one piece of data. In some embodiments, thecomputing device 1500 may include a parallel processor with one or morecores. In one of these embodiments, the computing device 1500 is ashared memory parallel device, with multiple processors and/or multipleprocessor cores, accessing all available memory as a single globaladdress space. In another of these embodiments, the computing device1500 is a distributed memory parallel device with multiple processorseach accessing local memory only. In still another of these embodiments,the computing device 1500 has both some memory which is shared and somememory which may only be accessed by particular processors or subsets ofprocessors. In still even another of these embodiments, the centralprocessing unit 1521 includes a multicore microprocessor, which combinestwo or more independent processors into a single package, e.g., into asingle integrated circuit (IC). In one exemplary embodiment, depicted inFIG. 13D, the computing device 1500 includes at least one centralprocessing unit 1521 and at least one graphics processing unit 1521′.

In some embodiments, a central processing unit 1521 provides singleinstruction, multiple data (SIMD) functionality, e.g., execution of asingle instruction simultaneously on multiple pieces of data. In otherembodiments, several processors in the central processing unit 1521 mayprovide functionality for execution of multiple instructionssimultaneously on multiple pieces of data (MIMD). In still otherembodiments, the central processing unit 1521 may use any combination ofSIMD and MIMD cores in a single device.

A computing device may be one of a plurality of machines connected by anetwork, or it may include a plurality of machines so connected. FIG.13E shows an exemplary network environment. The network environmentincludes one or more local machines 1502 a, 1502 b (also generallyreferred to as local machine(s) 1502, client(s) 1502, client node(s)1502, client machine(s) 1502, client computer(s) 1502, client device(s)1502, endpoint(s) 1502, or endpoint node(s) 1502) in communication withone or more remote machines 1506 a, 1506 b, 1506 c (also generallyreferred to as server machine(s) 1506 or remote machine(s) 1506) via oneor more networks 1504. In some embodiments, a local machine 1502 has thecapacity to function as both a client node seeking access to resourcesprovided by a server machine and as a server machine providing access tohosted resources for other clients 1502 a, 1502 b. Although only twoclients 1502 and three server machines 1506 are illustrated in FIG. 13E,there may, in general, be an arbitrary number of each. The network 1504may be a local-area network (LAN), e.g., a private network such as acompany Intranet, a metropolitan area network (MAN), or a wide areanetwork (WAN), such as the Internet, or another public network, or acombination thereof.

The computing device 1500 may include a network interface 1518 tointerface to the network 1504 through a variety of connectionsincluding, but not limited to, standard telephone lines, local-areanetwork (LAN), or wide area network (WAN) links, broadband connections,wireless connections, or a combination of any or all of the above.Connections may be established using a variety of communicationprotocols. In one embodiment, the computing device 1500 communicateswith other computing devices 1500 via any type and/or form of gateway ortunneling protocol such as Secure Socket Layer (SSL) or Transport LayerSecurity (TLS). The network interface 1518 may include a built-innetwork adapter, such as a network interface card, suitable forinterfacing the computing device 1500 to any type of network capable ofcommunication and performing the operations described herein. An I/Odevice 1530 may be a bridge between the system bus 1550 and an externalcommunication bus.

According to one embodiment, the network environment of FIG. 13E may bea virtual network environment where the various components of thenetwork are virtualized. For example, the various machines 1502 may bevirtual machines implemented as a software-based computer running on aphysical machine. The virtual machines may share the same operatingsystem. In other embodiments, different operating system may be run oneach virtual machine instance. According to one embodiment, a“hypervisor” type of virtualization is implemented where multiplevirtual machines run on the same host physical machine, each acting asif it has its own dedicated box. Of course, the virtual machines mayalso run on different host physical machines.

Other types of virtualization is also contemplated, such as, forexample, the network (e.g. via Software Defined Networking (SDN)).Functions, such as functions of the session border controller and othertypes of functions, may also be virtualized, such as, for example, viaNetwork Functions Virtualization (NFV).

While the present invention has been described in connection withcertain exemplary embodiments, it is to be understood that the inventionis not limited to the disclosed embodiments, but, on the contrary, isintended to cover various modifications and equivalent arrangementsincluded within the spirit and scope of the appended claims, andequivalents thereof.

What is claimed is:
 1. A method for configuring an automated self-helpsystem based on prior interactions between a plurality of customers anda plurality of agents of a contact center, the method comprising:recognizing, by a processor, speech loaded from a call recording storagemedium in the prior interactions between customers and agents togenerate recognized text, the recognized text comprising a plurality ofphrases, the phrases being classified into a plurality of clusters, theplurality of clusters comprising agent clusters corresponding to agentspeech and customer clusters corresponding to customer speech;extracting, automatically by the processor, a plurality of sequences ofclusters, each of the sequences of clusters corresponding to the phrasesof one of the prior interactions; filtering, automatically by theprocessor, the sequences of clusters based on a criterion, the criterioncomprising at least one of: success rate; frequency of use; orinteraction length; mining, automatically by the processor, apreliminary dialogue tree from the sequences of clusters, the miningcomprising matching prefixes of the sequences to generate thepreliminary dialogue tree, the preliminary dialogue tree comprisingalternating layers of agent clusters and customer clusters; invokingconfiguration of the automated self-help system based on the preliminarydialogue tree; and outputting a dialogue tree, automatically generatedbased on the preliminary dialogue tree, for configuring the automatedself-help system, the dialogue tree being customized for the contactcenter based on the prior interactions between the customers and agentsof the contact center, the automated self-help system being configuredto: present one or more options to a customer in accordance with acurrent node in the dialogue tree; receive an input from a customer;route the customer to a new node in the dialogue tree in accordance withthe input; and generate, automatically, a response in accordance withthe input and the new node.
 2. The method of claim 1, wherein the miningthe preliminary dialogue tree from the sequences of clusters and acurrent prefix comprises: generating sequences of cluster identifiers;and identifying frequent clusters of the clusters from the sequences ofcluster identifiers.
 3. The method of claim 2, wherein the generatingthe sequences of cluster identifiers comprises removing consecutiverepetitions of clusters in the sequences of clusters.
 4. The method ofclaim 2, wherein each of the clusters is associated with one of aplurality of sides, the plurality of sides comprising a customer sideand an agent side, wherein the identifying the frequent clusters of theclusters from the sequence of cluster identifiers comprises identifyingclusters associated with a side different from the side of the currentprefix and having support greater than a threshold level.
 5. The methodof claim 1, wherein the invoking configuration of the automatedself-help system comprises: displaying, on a user interface, thepreliminary dialogue tree in a user interface; receiving user inputidentifying an agent response for a node of the dialogue tree; andreceiving user input identifying a grammar matching a customer phrasefor an edge of the dialogue tree.
 6. The method of claim 5, furthercomprising displaying a plurality of suggested agent responses, theplurality of suggested agent responses being generated by: detecting, bythe processor, a plurality of topics in the prior interactions;receiving, by the processor, from the user interface, an input phrase;identifying, by the processor, a cluster matching the input phrase; anddisplaying, by the processor, on the user interface, a plurality ofphrases corresponding to the cluster matching the input phrase.
 7. Themethod of claim 5, further comprising displaying a plurality ofsuggested customer grammars, the plurality of suggested customergrammars being generated by: detecting, by the processor, a plurality oftopics in the prior interactions; receiving, by the processor, from theuser interface, an input phrase; identifying, by the processor, acluster matching the input phrase; and displaying, by the processor, onthe user interface, a grammar corresponding to the phrases of thecluster matching the input phrase.
 8. The method of claim 1, wherein theoutput dialogue tree comprises a plurality of agent nodes and aplurality of customer edges connecting the agent nodes.
 9. The method ofclaim 8, wherein at least one of the agent nodes comprises a mergedplurality of agent clusters.
 10. A method for configuring an automatedself-help system based on prior interactions between a plurality ofcustomers and a plurality of agents of a contact center, the methodcomprising: recognizing, by a processor, speech loaded from a callrecording storage medium in the prior interactions between customers andagents to generate recognized text, the recognized text comprising aplurality of phrases, the phrases being classified into a plurality ofclusters; extracting, automatically by the processor, a plurality ofsequences of clusters, each of the sequences of clusters correspondingto the phrases of one of the prior interactions; filtering,automatically by the processor, the sequences of clusters based on acriterion, the criterion comprising at least one of: success rate;frequency of use; or interaction length; mining, automatically by theprocessor, a preliminary dialogue tree from the sequences of clusters;invoking configuration of the automated self-help system based on thepreliminary dialogue tree; and outputting a dialogue tree, automaticallygenerated based on the preliminary dialogue tree, for configuring theautomated self-help system, wherein the mining the preliminary dialoguetree from the sequences of clusters and a current prefix comprises:generating sequences of cluster identifiers; identifying frequentclusters of the clusters from the sequences of cluster identifiers; andmatching prefixes of the sequences to generate the preliminary dialoguetree, and wherein the matching prefixes of the sequences comprises,based on the current prefix, a projected database for the currentprefix, and an input tree, for each cluster in the frequent clusters:concatenating the current prefix with the cluster to generate anappended prefix; building a projected database for the appended prefix;creating a subtree by recursively repeating the process using theappended prefix, the projected database for the appended prefix, and theinput tree; and extending the input tree by connecting the subtree as achild to a current parent node corresponding to the current prefix. 11.The method of claim 10, wherein the matching the prefixes begins by:setting the current prefix to the empty string; setting the projecteddatabase for the current prefix to be the sequences of clusteridentifiers; and setting the input tree to an empty tree.
 12. The methodof claim 10, further comprising receiving a selection of a root nodefrom a user, wherein the matching the prefixes begins by: setting thecurrent prefix to a string corresponding to the root node; setting theprojected database for the current prefix to be the sequences of clusteridentifiers; and setting the input tree to the root node.
 13. A systemcomprising a processor; and a memory, wherein the memory storesinstructions that, when executed by the processor, cause the processorto: recognize speech loaded from a call recording storage medium in aplurality of prior interactions between a plurality of customers and aplurality of agents of a contact center to generate recognized text, therecognized text comprising a plurality of phrases, the phrases beingclassified into a plurality of clusters, the plurality of clusterscomprising agent clusters corresponding to agent speech and customerclusters corresponding to customer speech; extract, automatically, aplurality of sequences of clusters, each of the sequences of clusterscorresponding to the phrases of one of the prior interactions; filter,automatically, the sequences of clusters based on a criterion, thecriterion comprising at least one of: success rate; frequency of use; orinteraction length; mine, automatically, a preliminary dialogue treefrom the sequences of clusters by matching prefixes of the sequences togenerate the preliminary dialogue tree, the preliminary dialogue treecomprising alternating layers of agent clusters and customer clusters;invoke configuration of an automated self-help system based on thepreliminary dialogue tree; and output a dialogue tree, automaticallygenerated based on the preliminary dialogue tree, for configuring theautomated self-help system, the dialogue tree being customized for thecontact center based on the prior interactions between the customers andagents of the contact center, the automated self-help system beingconfigured to: present one or more options to a customer in accordancewith a current node in the dialogue tree; receive an input from acustomer; route the customer to a new node in the dialogue tree inaccordance with the input; and generate, automatically, a response inaccordance with the input and the new node.
 14. The system of claim 13,wherein the instructions that cause the processor to mine thepreliminary dialogue tree from the sequences of clusters and a currentprefix include instructions that, when executed by the processor, causethe processor to: generate sequences of cluster identifiers; andidentify frequent clusters of the clusters from the sequences of clusteridentifiers.
 15. The system of claim 14, wherein the instructions thatcause the processor to generate the sequences of cluster identifiersinclude instructions that, when executed by the processor, cause theprocessor to remove consecutive repetitions of clusters in the sequencesof clusters.
 16. The system of claim 14, wherein each of the clusters isassociated with one of a plurality of sides, the plurality of sidescomprising a customer side and an agent side, wherein the instructionsthat cause the processor to identify the frequent clusters of theclusters from the sequence of cluster identifiers includes instructionsthat, when executed by the processor, cause the processor to identifyclusters associated with a side different from the side of the currentprefix and having support greater than a threshold level.
 17. The systemof claim 13, wherein the instructions that cause the processor to invokeconfiguration of the automated self-help system comprises instructionsthat, when executed by the processor, cause the processor to: display,on a user interface, the preliminary dialogue tree in a user interface;receive user input identifying an agent response for a node of thedialogue tree; and receive user input identifying a grammar matching acustomer phrase for an edge of the dialogue tree.
 18. The system ofclaim 17, wherein the memory further stores instructions that, whenexecuted by the processor, cause the processor to display a plurality ofsuggested agent responses, the plurality of suggested agent responsesbeing generated by: detecting a plurality of topics in the priorinteractions; receiving from the user interface, an input phrase;identifying a cluster matching the input phrase; and displaying on theuser interface, a plurality of phrases corresponding to the clustermatching the input phrase.
 19. The system of claim 17, wherein thememory further stores instructions that, when executed by the processor,cause the processor to display a plurality of suggested customergrammars, the plurality of suggested customer grammars being generatedby: detecting, by the processor, a plurality of topics in the priorinteractions; receiving, by the processor, from the user interface, aninput phrase; identifying, by the processor, a cluster matching theinput phrase; and displaying, by the processor, on the user interface, agrammar corresponding to the phrases of the cluster matching the inputphrase.
 20. The system of claim 13, wherein the output dialogue treecomprises a plurality of agent nodes and a plurality of customer edgesconnecting the agent nodes.
 21. The system of claim 20, wherein at leastone of the agent nodes comprises a merged plurality of agent clusters.22. A system comprising a processor; and a memory, wherein the memorystores instructions that, when executed by the processor, cause theprocessor to: recognize speech loaded from a call recording storagemedium in a plurality of prior interactions between a plurality ofcustomers and a plurality of agents of a contact center to generaterecognized text, the recognized text comprising a plurality of phrases,the phrases being classified into a plurality of clusters; extract,automatically, a plurality of sequences of clusters, each of thesequences of clusters corresponding to the phrases of one of the priorinteractions; filter, automatically, the sequences of clusters based ona criterion, the criterion comprising at least one of: success rate;frequency of use; or interaction length; mine, automatically, apreliminary dialogue tree from the sequences of clusters; invokeconfiguration of an automated self-help system based on the preliminarydialogue tree; and output a dialogue tree, automatically generated basedon the preliminary dialogue tree, for configuring the automatedself-help system, the dialogue tree being customized for the contactcenter based on the prior interactions between the customers and agentsof the contact center, wherein the instructions that cause the processorto mine the preliminary dialogue tree from the sequences of clusters anda current prefix include instructions that, when executed by theprocessor, cause the processor to: generate sequences of clusteridentifiers; identify frequent clusters of the clusters from thesequences of cluster identifiers; and match prefixes of the sequences togenerate the preliminary dialogue tree wherein the instructions thatcause the processor to match prefixes of the sequences includesinstructions that, based on the current prefix, a projected database forthe current prefix, and an input tree, for each cluster in the frequentclusters, cause the processor to: concatenate the current prefix withthe cluster to generate an appended prefix; build a projected databasefor the appended prefix; create a subtree by recursively repeating theprocess using the appended prefix, the projected database for theappended prefix, and the input tree; and extend the input tree byconnecting the subtree as a child to a current parent node correspondingto the current prefix.
 23. The system of claim 22, wherein theinstructions that cause the processor to match prefixes of the sequencesincludes instructions that, when executed by the processor, cause theprocessor to begin matching the prefixes by: setting the current prefixto the empty string; setting the projected database for the currentprefix to be the sequences of cluster identifiers; and setting the inputtree to an empty tree.
 24. The system of claim 22, wherein the memoryfurther stores instructions that cause the processor to receive aselection of a root node from a user, wherein the instructions thatcause the processor to match prefixes of the sequences includesinstructions that, when executed by the processor, cause the processorto begin matching the prefixes by: setting the current prefix to astring corresponding to the root node; setting the projected databasefor the current prefix to be the sequences of cluster identifiers; andsetting the input tree to the root node.